#include "Token.h"

	Token::Token(int type, int line, int column, Lexem* lexemPtr, Value* valuePtr){
		this->type = type;
		this->column = column;
		this->line = line;
		this->lexemPtr = lexemPtr;
		this->valuePtr= valuePtr;
	}

	Lexem* Token::getLexemPtr(){
		return lexemPtr;
	}

	Value* Token::getValuePtr(){
		return valuePtr;
	}

	string Token::getLexem(){
		if (lexemPtr != NULL) {
			return lexemPtr->getLexem();
		}else {
			throw "No Lexem";
		}
	}

	double Token::getValue(){
		if (valuePtr != NULL) {
			return valuePtr->getValue();
		}else {
			throw "No Value";
		}
	}

	int Token::getLine(){
		return line;
	}

	int Token::getColumn(){
		return column;
	}

	int Token::getType(){
		return type;
	}

	void Token::setType(int type){
		this->type = type;
	}